home *** CD-ROM | disk | FTP | other *** search
- 1010 P$="FILECAB.BAS":V$="82/04/16/1240"
- 1020 SCREEN 0,0,0:CLEAR
- 1030 KEY OFF: DEFINT A-Z:CLS
- 1040 OPEN "SCRN:" FOR OUTPUT AS #2
- 1050 DIM R$(65),AC(21),K(65),H$(21),RN$(21),Z$(21)
- 1060 COMMA$="NO" 'SEE INPUT ROUTINE
- 1070 H$(0)="REC #":DB$="":F$="BASENAME":ON ERROR GOTO 2320
- 1080 GOSUB 3840
- 1090 GOTO 2230
- 1100 F$=".HED":ON ERROR GOTO 1490:GOSUB 3840
- 1110 FOR I=1 TO NR:H$(I)=R$(I):NEXT I
- 1120 NH=NR:NR=0:MEM#=FRE(0)
- 1130 PRINT "AVAILABLE BYTES OF MEMORY ="FRE(0)
- 1140 AVGFLEN=20:B=INT(MEM#/(AVGFLEN*NH))-10
- 1150 PRINT "ASSUMING"AVGFLEN"CHARS/FIELD AND"NH"FIELDS"
- 1160 PRINT "MEMORY HAS ROOM FOR"B"RECORDS"
- 1170 DIM N$(B,NH),R(B)
- 1180 F$=".IND":ON ERROR GOTO 4530:GOSUB 3840
- 1190 GOTO 4510
- 1200 REM *** SORT ***
- 1210 FOR I=1 TO NR:R(I)=0:NEXT I
- 1220 FOR I=1 TO NR:FOR J=1 TO NR
- 1230 ON L GOTO 1240,1260
- 1240 IF N$(I,S)>=N$(J,S) THEN R(I)=R(I)+1
- 1250 GOTO 1270
- 1260 IF VAL(N$(I,S))>=VAL(N$(J,S)) THEN R(I)=R(I)+1
- 1270 NEXT J:NEXT I
- 1280 PRINT "SORT PHASE 1 FINISHED"
- 1290 FOR I=NR TO 1 STEP -1:FOR J=NR TO 1 STEP -1
- 1300 IF I<>J THEN IF R(I)=R(J) THEN R(J)=R(J)-1
- 1310 NEXT J:NEXT I
- 1320 PRINT "SORT PHASE 2 FINISHED"
- 1330 J=1
- 1340 IF R(J)=J THEN J=J+1:GOTO 1340
- 1350 IF J>=NR THEN 1400
- 1360 FOR I=1 TO NH
- 1370 Z$(I)=N$(R(J),I):N$(R(J),I)=N$(J,I):N$(J,I)=Z$(I):NEXT I
- 1380 Z=R(R(J)):R(R(J))=R(J):R(J)=Z
- 1390 GOTO 1340
- 1400 PRINT CHR$(7):PRINT "-Y- TO SAVE THE "DB$" FILE"
- 1410 PRINT "SORTED BY "H$(S);:INPUT L$
- 1420 IF L$="Y" THEN F$=".IND":GOSUB 3960
- 1430 GOTO 4510
- 1440 MF=1:GOSUB 3590
- 1450 INPUT "# OF SORT KEY FIELD";S$:S=VAL(S$)
- 1460 IF S<1 OR S>NH THEN 1450
- 1470 PRINT:INPUT "1 => SORT ALPHA; 2 => SORT NUMER ";L$:L=VAL(L$)
- 1480 PRINT:PRINT "SORT BEGINS":GOTO 1210
- 1490 RESUME 1500 'ERROR TARGET
- 1500 ON ERROR GOTO 0
- 1510 REM *** CREATE FIELDNAMEFILE ***
- 1520 NR=1
- 1530 CLS:PRINT "-RETURN- TO GO TO MAIN MENU":PRINT
- 1540 PRINT "FIELD NAME FOR FIELD"NR;:INPUT R$(NR)
- 1550 IF R$(NR)="" OR NR>20 THEN 1580
- 1560 NR=NR+1
- 1570 GOTO 1540
- 1580 NR=NR-1
- 1590 GOSUB 3960:GOTO 1110
- 1600 REM ***ENTER RECORDS***
- 1610 CLS
- 1620 PRINT "THERE ARE "NR" RECORDS IN THE "DB$" FILE"
- 1630 NR=NR+1
- 1640 PRINT "YOU ARE ENTERING RECORD"NR:PRINT
- 1650 FOR I=1 TO NH:PRINT H$(I)":";:GOSUB 4420:N$(NR,I)=I$:NEXT I:PRINT
- 1660 INPUT "-Y- TO ENTER ANOTHER RECORD";L$
- 1670 IF L$="Y" THEN 1620:F$=".IND"
- 1680 GOSUB 3960
- 1690 GOTO 4510
- 1700 REM ***SEARCH/CHANGE***
- 1710 L=0
- 1720 CLS:PRINT "SEARCH ANY OF THE FOLLOWING FIELDS:":PRINT
- 1730 GOSUB 3590
- 1740 PRINT:PRINT "OR":PRINT:PRINT I" MAKE CHANGES":PRINT
- 1750 INPUT "TYPE A NUMBER";S$:S=VAL(S$)
- 1760 IF S<0 OR S>NH+1 THEN 1750
- 1770 IF S=NH+1 THEN 1940
- 1780 CLS:PRINT "ENTER THE"H$(S):PRINT "TO BE FOUND":INPUT Q$
- 1790 CLS:FOR J=1 TO NR:N$(J,0)=STR$(J)
- 1800 IF LEFT$(N$(J,S),LEN(Q$))=Q$ THEN GOSUB 2050
- 1810 IF L+NH>20 THEN GOSUB 1890
- 1815 NEXT J
- 1820 PRINT "SEARCH FINISHED":PRINT
- 1830 PRINT "1 => DO MORE SEARCHES"
- 1840 PRINT "2 => MAKE CHANGES"
- 1850 PRINT "3 => RETURN TO MAIN MENU"
- 1860 INPUT S$:S=VAL(S$)
- 1870 IF S<1 OR S>3 THEN 1860
- 1880 ON S GOTO 1720,1940,4510
- 1890 IF PF <> 0 THEN 1930
- 1900 PRINT "-RETURN- TO CONTINUE; -ESC- TO GO TO MAIN MENU";
- 1910 L$=INKEY$:IF L$="" THEN 1910
- 1920 IF ASC(L$)=27 THEN 4510:IF ASC(L$)<>13 THEN 1910
- 1930 L=0:CLS:RETURN
- 1940 REM ***CHANGE DATA***
- 1950 INPUT "REC # TO BE CHANGED";J$:J=VAL(J$)
- 1960 CLS:GOSUB 2050
- 1970 PRINT "FIELD NUMBER TO BE CHANGED ("I"FOR NO CHANGE)"
- 1980 INPUT S$:S=VAL(S$)
- 1990 IF S<1 THEN 1980 ELSE IF S>NH THEN 2020
- 2000 PRINT:PRINT "FROM"H$(S)": "N$(J,S):PRINT:PRINT "TO"H$(S)": ";
- 2010 INPUT N$(J,S):CLS:GOSUB 2050
- 2020 PRINT:INPUT "-Y- TO CHANGE ANOTHER RECORD";L$
- 2030 IF L$="Y" THEN 1940
- 2040 F$=".IND":GOSUB 3960:GOTO 4510
- 2050 REM ***PRINT A RECORD***
- 2060 ON PF GOSUB 4850,4880,4920
- 2070 PRINT #2," "H$(0)": ";J
- 2080 FOR I=1 TO NH:PRINT #2,I" "H$(I)": "N$(J,I):NEXT I:PRINT #2,
- 2090 L=L+NH+2
- 2100 CLOSE #2:OPEN "SCRN:" FOR OUTPUT AS #2
- 2110 RETURN
- 2120 REM ***DELETE RECORDS***
- 2130 CLS
- 2140 PRINT "REC # TO BE DELETED ("NR+1"TO ABORT DELETION)";
- 2150 INPUT DR$:DR=VAL(DR$)
- 2160 IF DR<1 THEN 2140 ELSE IF DR>NR THEN NR=NR+1:GOTO 2200
- 2170 FOR J=DR TO NR-1:FOR I=1 TO NH
- 2180 N$(J,I)=N$(J+1,I):NEXT I:NEXT J
- 2190 PRINT:PRINT "RECORD NUMBER "DR" DELETED!":PRINT
- 2200 INPUT "-Y- TO DELETE MORE";L$
- 2210 IF L$="Y" THEN 2140
- 2220 NR=NR-1:F$=".IND":GOSUB 3960:GOTO 4510
- 2230 REM *** BASENAMEFILE ROUTINES ***
- 2240 CLS:PRINT "SELECT FROM:":PRINT
- 2250 FOR J=1 TO NR:PRINT J" "R$(J):NEXT J:PRINT
- 2260 PRINT J" CREATE A NEW DATA BASE"
- 2270 IF J>1 THEN PRINT J+1" DELETE A DATA BASE":PRINT
- 2280 INPUT "TYPE A NUMBER";S$:S=VAL(S$)
- 2290 IF S=(J+1) THEN 2370
- 2300 IF S<1 OR S>J THEN PRINT CHR$(7);:GOSUB 4990:GOTO 2280
- 2310 DB$=R$(S):IF S<>J THEN 1100
- 2315 PRINT:GOTO 2340
- 2320 RESUME 2330 'ERROR TARGET
- 2330 ON ERROR GOTO 0
- 2340 IF J=0 THEN J=1
- 2345 INPUT "NAME FOR NEW DATA BASE FILE :";R$(J)
- 2350 NR=J:GOSUB 3960
- 2360 DB$=R$(J-1):GOTO 1100
- 2370 REM *** DELETE A DATA BASE ***
- 2380 PRINT:INPUT "DELETE WHICH DATABASE: ";S$:S=VAL(S$)
- 2390 IF S<1 OR S>J-1 THEN PRINT CHR$(7);:GOSUB 4990:GOTO 2380
- 2400 CLS:LOCATE 9,1
- 2410 PRINT "READY TO DELETE "CHR$(34);R$(S);CHR$(34);".":PRINT
- 2420 PRINT "ONCE DELETED, THIS DATA CANNOT BE RECOVERED."
- 2430 PRINT "ARE YOU SURE YOU WANT TO DELETE IT (Y/N) ";:INPUT S$
- 2440 IF S$<>"Y" THEN 2230
- 2450 CLS:LOCATE 12,11:COLOR 0,7:PRINT " DELETING DATABASE ":COLOR 7,0
- 2460 ON ERROR GOTO 2500
- 2470 DB$=R$(S):DB$=R$(S):F$=".RPN":GOSUB 3840:KILL DB$+F$
- 2480 FOR I=1 TO NR:KILL DB$+R$(I)+".RPT":NEXT I
- 2490 GOTO 2520
- 2500 RESUME 2510 'TARGET OF ERROR
- 2510 ON ERROR GOTO 0
- 2520 ON ERROR GOTO 4960
- 2530 KILL DB$+".RPN":KILL DB$+".IND":KILL DB$+".HED"
- 2540 ON ERROR GOTO 0
- 2550 DB$=""
- 2560 F$="BASENAME":GOSUB 3840
- 2570 IF NR=1 THEN KILL "BASENAME":GOTO 1010
- 2580 FOR I=S TO NR-1:R$(I)=R$(I+1):NEXT I
- 2590 NR=NR-1:GOSUB 3960
- 2600 GOTO 2230
- 2610 REM ***REPORT***
- 2620 T9=0
- 2630 CLS:E=0
- 2640 FOR I=0 TO 3*NH+2:K(I)=0:NEXT I
- 2650 FOR I=0 TO NH:AC(I)=0:NEXT I:HC=0:GT=0
- 2660 ON E GOTO 2860
- 2670 GOTO 3650
- 2680 PRINT:INPUT "HOW MANY FIELD NAMES";RH$
- 2690 RH= VAL(RH$):IF RH<1 OR RH>NH+1 THEN 2680
- 2700 IF E=0 THEN RN$(NN)="PRESENT"
- 2710 FOR I=1 TO RH*3 STEP 3
- 2720 PRINT "ENTER # OF FIELD NAME TO GO IN"
- 2730 PRINT "POSITION #"(I+2)/3" ";:INPUT "";K$:K(I)=VAL(K$)
- 2740 IF K(I)<0 OR K(I)>NH THEN 2720
- 2750 PRINT "ENTER STARTING COLUMN FOR"H$(K(I))" ";:INPUT K$:K(I+1)=VAL(K$)
- 2760 IF K(I+1)<0 OR K(I+1)>255 THEN 2750
- 2770 PRINT "CALCULATE COLUMN TOTAL ON"H$(K(I))" (Y/N)";:INPUT L$
- 2780 IF L$="Y" THEN K(I+2)=1:K(0)=1
- 2790 NEXT I
- 2800 IF K(0)<>1 THEN 2860
- 2810 INPUT "ENTER STARTING COLUMN FOR TOTAL: ";A$
- 2820 IF LEN(A$)=0 THEN K(0)=0:T9=1:GOTO 2860
- 2830 K(I+1)=VAL(A$)
- 2840 IF K(I+1)<0 OR K(I+1)>131 THEN PRINT CHR$(7):RWLC=CSRLIN-2
- 2850 IF K(I+1)<0 OR K(I+1)>131 THEN LOCATE RWLC,1:GOTO 2810
- 2860 PRINT
- 2870 INPUT "SELECT RECORDS BY WHICH FIELD # ";S$:S=VAL(S$)
- 2880 IF LEN(S$)=0 THEN Q$="@":GOTO 2950
- 2890 PRINT:INPUT "'AND' 2ND HEADER (Y/N)";L$
- 2900 IF L$<>"Y" THEN X$="@":GOTO 2920
- 2910 PRINT:INPUT "ENTER # OF 'AND' HEADER ";X$:X=VAL(X$)
- 2920 PRINT:PRINT "@ WILL SELECT ALL RECORDS."
- 2930 PRINT:PRINT "SELECT RECORDS FOR"H$(S)"= ";:INPUT Q$:PRINT
- 2940 IF L$="Y" THEN PRINT "AND "H$(X)"= ";:INPUT X$
- 2950 FOR I=1 TO RH+1:REM IF K(3*I-1)>35 THEN PF = 2
- 2960 NEXT I
- 2970 ON PF GOSUB 4850,4880,4920:GOSUB 3310
- 2980 FOR J=1 TO NR
- 2990 N$(J,0)=STR$(J)
- 3000 IF Q$="@" THEN 3040
- 3010 IF LEFT$(N$(J,S),LEN(Q$))<>Q$ THEN 3050
- 3020 IF X$="@" THEN 3040
- 3030 IF LEFT$(N$(J,X),LEN(X$))<>X$ THEN 3050
- 3040 GOSUB 3160
- 3050 IF PF<1 THEN IF L>18 THEN GOSUB 1890:GOSUB 3310
- 3060 IF L=0 THEN GOSUB 3310
- 3070 NEXT J
- 3080 ON T9 GOSUB 3240
- 3090 CLOSE #2:OPEN "SCRN:" FOR OUTPUT AS #2
- 3100 ON E GOTO 3130
- 3110 PRINT:PRINT "-Y- TO SAVE THE FORMAT FOR THIS REPORT":INPUT L$
- 3120 IF L$="Y" THEN E=1:GOSUB 3410
- 3130 PRINT:PRINT "-Y- FOR MORE REPORTS WITH THE "RN$(NN)" FORMAT":INPUT L$
- 3140 IF L$="Y" THEN GOSUB 3590:E=1:GOTO 2650
- 3150 GOTO 4510
- 3160 FOR I=1 TO RH
- 3170 PRINT #2,TAB(K(3*I-1)) N$(J,K(3*I-2));:ON K(3*I) GOSUB 3210:NEXT I
- 3180 IF K(0)=1 THEN IF HC<>0 THEN PRINT #2,TAB(K(3*I-1)) HC;:GT=GT+HC:HC=0
- 3190 L=L+1
- 3200 PRINT #2,:RETURN
- 3210 N=3*I-2
- 3220 V=VAL(N$(J,K(N))):AC(I)=AC(I)+V:HC=HC+V
- 3230 RETURN
- 3240 FOR I=1 TO 39+((PF>1)*39):PRINT #2,"-";:NEXT I:PRINT #2,
- 3250 FOR I=1 TO RH
- 3260 IF AC(I)=0 THEN 3280
- 3270 PRINT #2,TAB(K(3*I-1)) AC(I);
- 3280 NEXT I
- 3290 IF GT<>0 THEN PRINT #2,TAB(K(3*I-1)) GT;
- 3300 PRINT #2,:RETURN
- 3310 CLS
- 3320 IF PF=>1 THEN PRINT #2,CHR$(27)+CHR$(12) 'TOP OF FORM
- 3330 PRINT #2,RN$(NN)"REPORT FOR"H$(S)":"Q$;
- 3340 IF X$="@" THEN 3360
- 3350 PRINT #2," AND"H$(X)":"X$:GOTO 3370
- 3360 PRINT #2," "
- 3370 FOR I=1 TO RH:PRINT #2,TAB(K(3*I-1)) H$(K(3*I-2));:NEXT I
- 3380 IF K(0)=1 THEN PRINT #2,TAB(K(3*I-1)) "TOTAL";
- 3390 PRINT #2,:PRINT #2,
- 3400 L=4:RETURN
- 3410 REM *** SET-UP TO SAVE RPTFMTFILE ***
- 3420 NS=NR
- 3430 PRINT:INPUT "TYPE THE REPORT FORMAT NAME ";RN$(NN)
- 3440 F$=RN$(NN)+".RPT"
- 3450 PRINT F$ "*****TEST***"
- 3460 NR=3*RH+2
- 3470 FOR I=1 TO NR:R$(I)=STR$(K(I)):NEXT I
- 3480 R$(I-2)=STR$(K(0))
- 3490 GOSUB 3960:GOSUB 4090
- 3500 RETURN
- 3510 REM *** SET-UP TO READ RPTFMTFILE ***
- 3520 F$=RN$(NN)+".RPT"
- 3530 PRINT F$ "******TEST*****"
- 3540 GOSUB 3840
- 3550 RH=(NR-2)/3:FOR I=1 TO NR:K(I)=VAL(R$(I)):NEXT I
- 3560 K(0)=VAL(R$(I-2))
- 3570 NR=NS
- 3580 GOSUB 3590:PRINT:GOTO 2870
- 3590 REM *** SUB MENU ***
- 3600 PRINT "SELECT FROM:":PRINT
- 3610 IF MF=0 THEN PRINT "0 "H$(0)
- 3620 FOR I=1 TO NH:PRINT I" "H$(I):NEXT I:PRINT
- 3630 MF=0
- 3640 RETURN
- 3650 REM *** READ REPORTNAMEFILE & SELECT REPORT ***
- 3660 NN=0:FOR I=0 TO 21:RN$(I)="":NEXT I:NS=NR
- 3670 F$=".RPN"
- 3680 ON ERROR GOTO 3780
- 3690 GOSUB 3840
- 3700 FOR I=1 TO NR:RN$(I)=R$(I):NEXT I
- 3710 CLS:PRINT "SELECT FROM:":PRINT
- 3720 FOR I=1 TO NR:PRINT I" "R$(I):NEXT I:PRINT
- 3730 PRINT I" CREATE A NEW REPORT FORMAT":PRINT
- 3740 INPUT "WHICH ";S$:S=VAL(S$):IF S<1 OR S>I THEN 3740
- 3750 NN=S
- 3760 IF S<>I THEN RN$(S)=R$(S):E=1:NR=NS:GOTO 3510
- 3770 GOTO 3830
- 3780 RESUME 3790 'TARGET OF ERROR
- 3790 ON ERROR GOTO 0
- 3800 CLS:PRINT "NO REPORT FORMATS ON DISK":PRINT
- 3810 NN=1
- 3820 INPUT "CREATE ONE (Y/N) ?";L$:IF L$<>"Y" THEN 4510
- 3830 GOSUB 3590:NR=NS:GOTO 2680
- 3840 REM *** READ FILES ***
- 3850 IF F$<>".IND" THEN FF=1
- 3860 OPEN DB$+F$ FOR INPUT AS #1
- 3870 ON ERROR GOTO 0
- 3880 INPUT #1,NR
- 3890 FOR J=1 TO NR
- 3900 ON FF GOTO 3930
- 3910 FOR I=1 TO NH:INPUT #1,I$:N$(J,I)=I$:NEXT I
- 3920 GOTO 3940
- 3930 INPUT #1,R$(J)
- 3940 NEXT J
- 3950 CLOSE #1:FF=0:RETURN
- 3960 REM *** SAVE FILES ***
- 3970 IF F$<>".IND" THEN FF=1
- 3980 OPEN DB$+F$ FOR OUTPUT AS #1
- 3990 PRINT #1,NR
- 4000 FOR J=1 TO NR
- 4010 ON FF GOTO 4040
- 4020 FOR I=1 TO NH:PRINT #1,N$(J,I):NEXT I
- 4030 GOTO 4050
- 4040 PRINT #1,R$(J)
- 4050 NEXT J
- 4060 CLOSE #1
- 4070 FF=0
- 4080 RETURN
- 4090 REM *** SAVE REPORTNAMEFILE ***
- 4100 NR=NN
- 4110 F$=".RPN"
- 4120 FOR I=1 TO NR:R$(I)=RN$(I):NEXT I
- 4130 GOSUB 3960
- 4140 NR=NS:RETURN
- 4150 REM *** LIST ***
- 4160 L=0
- 4170 CLS
- 4180 REM IF PF=>1 THEN LPRINT CHR$(12)
- 4190 FOR J=1 TO NR
- 4200 ON PF GOSUB 4850,4880,4920
- 4210 PRINT #2," "H$(0)": ";J:L=L+1
- 4220 FOR I=1 TO NH
- 4230 PRINT #2,I" "H$(I)": "N$(J,I)
- 4240 L=L+1
- 4250 NEXT I
- 4260 PRINT #2,:L=L+1
- 4270 IF L+NH>20 THEN 4320
- 4280 NEXT J
- 4290 CLOSE #2:OPEN "SCRN:" FOR OUTPUT AS #2
- 4300 INPUT "-RETURN- FOR MENU";L$
- 4310 GOTO 4510
- 4320 CLOSE #2:OPEN "SCRN:" FOR OUTPUT AS #2
- 4330 PRINT "-RETURN- TO CONTINUE; -ESC- FOR MENU";
- 4340 L$=INKEY$:IF L$="" THEN 4340
- 4350 IF ASC(L$)=27 THEN 4510
- 4360 IF ASC(L$)=13 THEN 4380
- 4370 GOTO 4340
- 4380 CLS:L=0
- 4390 ON PF GOSUB 4850,4880,4920
- 4400 GOTO 4280
- 4410 STOP
- 4420 REM *** INPUT ROUTINES ***
- 4430 I$ = ""
- 4440 IF COMMA$="NO" THEN INPUT I$:RETURN
- 4450 A$=INKEY$:IF A$="" THEN 4450
- 4460 IF A$=CHR$(3) THEN STOP
- 4470 PRINT A$;
- 4480 IF A$=CHR$(13) THEN RETURN
- 4490 I$=I$+A$
- 4500 GOTO 4450
- 4510 REM *** MAIN MENU ***
- 4520 GOTO 4550
- 4530 RESUME 4540 ' TARGET OF ERROR
- 4540 ON ERROR GOTO 0
- 4550 CLS
- 4560 PRINT "******* DATA BASE MANAGEMENT I *******"
- 4570 PRINT:PRINT " IBM PERSONAL COMPUTER"
- 4580 PRINT
- 4590 PRINT "CURRENT DATA BASE: "DB$" NOW HAS"NR"RECORDS:PRINT
- 4600 PRINT "ASSUMING"AVGFLEN"CHARS/FIELD, ROOM FOR"B - NR"MORE":PRINT
- 4610 IF PF >=1 THEN PRINT "PRINTER ";:COLOR 23:PRINT "ON":COLOR 7:GOTO 4630
- 4620 PRINT "PRINTER OFF"
- 4630 PRINT
- 4640 PRINT "1 SELECT DATA BASE"
- 4650 PRINT "2 SEARCH AND/OR CHANGE DATA"
- 4660 PRINT "3 ENTER RECORDS"
- 4670 PRINT "4 DELETE RECORDS"
- 4680 PRINT "5 REPORT"
- 4690 PRINT "6 SORT (TAKES ABOUT"INT(.0008*NR^2+.03*NR)"MINUTES)"
- 4700 PRINT "7 TURN ON PRINTER"
- 4710 PRINT "8 TURN OFF PRINTER"
- 4720 PRINT "9 LIST ALL RECORDS"
- 4730 PRINT "10 QUIT"
- 4740 PRINT
- 4750 INPUT "TYPE A NUMBER";S$:S=VAL(S$)
- 4760 IF S<1 OR S>10 THEN 4510
- 4770 ON S GOTO 4845,1700,1600,2120,2610,1440,4780,4830,4150,4840
- 4780 CLS:PRINT "PRINTER OPTIONS:"
- 4790 PRINT "1 => 40 COLUMNS; 2 => 80 COLUMNS; 3 => 132 COLUMNS"
- 4800 PRINT:INPUT "WHICH ";PF$:PF=VAL(PF$)
- 4810 IF PF<1 OR PF>3 THEN 4800
- 4820 GOTO 4510
- 4830 PF=0:CLOSE #2:OPEN "SCRN:" FOR OUTPUT AS #2:GOTO 4510
- 4840 END
- 4845 CLOSE
- 4846 RUN
- 4850 CLOSE #2:OPEN "LPT1:" FOR OUTPUT AS #2
- 4860 PRINT #2,CHR$(18)
- 4870 PRINT "K":RETURN
- 4880 CLOSE #2:OPEN "LPT1:" FOR OUTPUT AS #2
- 4890 PRINT #2,CHR$(18)
- 4900 PRINT "K80N"
- 4910 RETURN
- 4920 CLOSE #2:OPEN "LPT1:" FOR OUTPUT AS #2
- 4930 PRINT #2,CHR$(15)
- 4940 PRINT "K132N"
- 4945 END
- 4946 RUN
- 4950 RETURN
- 4960 REM CLEAR ERROR IF .RPN FILE DOSENT EXIST
- 4970 RESUME NEXT
- 4980 REM SUBROUTINE TO ERASE A LINE
- 4990 RWLC=CSRLIN-1:LOCATE RWLC,1:PRINT STRING$(39," ");:LOCATE RWLC,1
- 5000 RETURN
- NEXT
- 4980 REM SUBROUTINE TO ERASE A LINE
- 4990 RWLC=CSRLIN-1:LOCATE RWLC,1:PRINT STRING$(3